Scroll to navigation

UNIQ(1) User Commands UNIQ(1)

NAME

uniq - report or omit repeated lines

SYNOPSIS

uniq [OPTION]... [INPUT [OUTPUT]]

DESCRIPTION

Filter adjacent matching lines from INPUT (or standard input), writing to OUTPUT (or standard output).

With no options, matching lines are merged to the first occurrence.

Mandatory arguments to long options are mandatory for short options too.

prefix lines by the number of occurrences
only print duplicate lines, one for each group
print all duplicate lines
like -D, but allow separating groups with an empty line; METHOD={none(default),prepend,separate}
avoid comparing the first N fields
show all items, separating groups with an empty line; METHOD={separate(default),prepend,append,both}
ignore differences in case when comparing
avoid comparing the first N characters
only print unique lines
line delimiter is NUL, not newline
compare no more than N characters in lines
display this help and exit
output version information and exit

A field is a run of blanks (usually spaces and/or TABs), then non-blank characters. Fields are skipped before chars.

Note: 'uniq' does not detect repeated lines unless they are adjacent. You may want to sort the input first, or use 'sort -u' without 'uniq'.

AUTHOR

Written by Richard M. Stallman and David MacKenzie.

REPORTING BUGS

GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Report any translation bugs to <https://translationproject.org/team/>

COPYRIGHT

Copyright © 2020 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

SEE ALSO

comm(1), join(1), sort(1)

Full documentation <https://www.gnu.org/software/coreutils/uniq>
or available locally via: info '(coreutils) uniq invocation'

January 2024 GNU coreutils 8.32